package com.bkgy.controller.optimize.dao;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bkgy.controller.optimize.dto.OptimizeDistributeRes;
import com.bkgy.controller.optimize.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Author:Lipeng Zhao
 * Description:
 *
 * @Date:Created In 11:00 2025/5/6
 */
@Mapper
public interface OptimizeDao {
    /**
     * 分页查看
     *
     * @return 对象数据集合
     */
    public List<ParamOptimizeEntity> findMapByCondition(Page page, @Param("query") AcidRollingProductRequest query);

    public List<ParamOptimizeEntity> findExcelMapByCondition(@Param("query") AcidRollingProductRequest query);

    public ParamOptimizeEntity findAcidRollingProduct(@Param("query") AcidRollingProductRequest query);

    public int findCountByCondition(@Param("query") AcidRollingProductRequest query);

    /**
     * 分页查看
     *
     * @return 对象数据集合
     */
    public List<CaseManageEntity> findCaseMapByCondition(Page page, @Param("query") AcidRollingProductRequest query);

    public List<CaseManageEntity> findCaseMapByStatus();

    public int findCaseCountByCondition(@Param("query") AcidRollingProductRequest query);

    public List<LoadDistributionEntity> findLoadDistributionMapByCondition(Page page, @Param("query") LoadDistributionRequest query);

    public List<LoadDistributionEntity> findLoadDistributionMapByCondition(@Param("query") LoadDistributionRequest query);

    public int findLoadDistributionCountByCondition(@Param("query") LoadDistributionRequest query);

    public List<ParamOptimizeEntity> findLoadDistributionCurveData(@Param("query") LoadDistributionRequest query);



    public CaseManageEntity findCaseByCoilNo(@Param("query") AcidRollingProductRequest query);

    public void deleteCaseByCoilNo(@Param("query") AcidRollingProductRequest query);

    public void updateCase(@Param("query") CaseManageEntity query);

    public void insertCase(@Param("query") CaseManageEntity query);

    public List<SimulationReportResp> simulationReport(@Param("query") SimulationReportRequest query);

    public List<ClassStatisticsResp> classStatistics(@Param("query") ClassStatisticsReq query);

    public int classStatisticsCount(@Param("query") ClassStatisticsReq query);

    public List<ClassStatisticsResp> findByYpClass(@Param("query") ClassStatisticsReq query);


    public int findByYpClassCount(@Param("query") ClassStatisticsReq query);


    List<OptimizeDistributeRes> distributionData(String beginDate);
}
